package com.mapper;

import com.entity.PageQuery;
import com.entity.Supplier;
import com.entity.SupplierQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SupplierMapper {
    /**
     * 根据供货商ID查询供货商信息及关联的入库记录
     * */
    Supplier findByIdWithStorages(Integer supplierId);

    /**
     * 添加供货商（自动填充创建时间和创建人ID）
      */
    int addSupplier(Supplier supplier);

    /**
     * 根据ID修改供货商（自动填充更新时间和更新人ID）
     * */
    int updateSupplierById(Supplier supplier);

    /**
     *  根据ID删除供货商
     * */
    int deleteSupplierById(@Param("id") Integer id);

    /**
     *
     * 第三章  上机2
     * @param query
     * @return
     */
    List<Supplier> findSupplierList(SupplierQuery query);

    /**
     *
     * 第三章上机3
     */
    List<Supplier> findSupplierByConditions(SupplierQuery query);

    /**
     *
     * 第四章上机6
     */
    int updateSupplier(Supplier supplier);

    /**
     * 第四章上机7
     */
    int updateSupplierByTrim(Supplier supplier);


    /**
     *
     * 第三章上机8
     */
    // 分页查询供货商列表（带排序）
    List<Supplier> findSupplierByPage(PageQuery query);

    // 查询供货商总条数
    int countSupplier();
}
